﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using clEntidad;
using clBUS;
using clEntidad.Ex;

namespace portero_.Admin
{
    public partial class frmUsuario : Form
    {
        public frmUsuario(Usuario usuario)
        {
            InitializeComponent();
            this.usuario = usuario;
        }
        public Usuario usuario { get; set; }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (tbNombre.Text.Trim() == "")
            {
                MessageBox.Show("Debe ingresar un nombre");
                tbNombre.Focus();
                return;
            }
            if (tbLogin.Text.Trim() == "")
            {
                MessageBox.Show("Debe ingresar un usuario");
                tbLogin.Focus();
                return;
            }
            if (tbClave.Text.Trim() == "")
            {
                MessageBox.Show("Debe ingresar una clave");
                tbClave.Focus();
                return;
            }

            Usuario usuario = new Usuario();
            usuario.login = tbLogin.Text;
            usuario.nombre = tbNombre.Text;
            usuario.pasw = tbClave.Text;
            usuario.esAdmin = ckbAdmin.Checked;
            usuario.activo = ckbActivo.Checked;
            usuario.esCaduco = ckbCaduco.Checked;

            foreach (object itemChecked in lbLocal.CheckedItems)
            {
                Local local = (Local)itemChecked;
                usuario.Locales.Add(local);
            }
            BUSUsuario objBUS = new BUSUsuario(Constantes.CADENA_BD);
            try
            {
                this.usuario=  objBUS.add(usuario, Constantes.USUARIO.id);
                this.Hide();
            }
            catch (BUSException ex)
            {
                MessageBox.Show(ex.Message, Constantes.cNOMBRE_SIS, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void frmUsuario_Load(object sender, EventArgs e)
        {
            BUSLocal objBUSL = new BUSLocal(Constantes.CADENA_BD);
            lbLocal.Items.Clear();
            foreach (Local elem in objBUSL.getAll())
            {
                lbLocal.Items.Add(elem);
            }
        }

        private void tbNombre_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");

        }

        private void frmUsuario_SizeChanged(object sender, EventArgs e)
        {

        }

        private void frmUsuario_Shown(object sender, EventArgs e)
        {

        }

        private void tbLogin_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                SendKeys.Send("{TAB}");
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void seleccionarTodosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            selecAll(true);
        }
        private void selecAll(bool seleccionar)
        {
            for(int ix = 0; ix<lbLocal.Items.Count; ix++ )
            {
                lbLocal.SetItemChecked(ix, seleccionar);
            }
        }

        private void deseleccionarTodosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            selecAll(false);
        }
    }
}
